from apps.goods.models import SKU
from haystack import indexes

"""
    1.在模型对应子应用中创建SearchIndex.py文件，以便haystack检索数据
    2.索引类必须继承自 indexes.SearchIndex, indexes.Indexable
    3.必须定义一个字段 document=True ，习惯命名为text
    4.use_template=True 允许单独设置文件，指定哪些字段检索，
       文件在 模板文件夹/search/indexes/子应用名/模型类名小写_text.txt
       
让haystack将数据获取给 es 生成索引
    在虚拟环境下 python manage.py rebuild_index       

"""


class SKUIndex(indexes.SearchIndex, indexes.Indexable):
    text = indexes.CharField(document=True, use_template=True)

    def get_model(self):
        """返回建立索引的模型类"""
        return SKU

    def index_queryset(self, using=None):
        """返回要建立索引的数据查询集"""
        return self.get_model().objects.filter(is_launched=True)
